Scroll to navigation

perl(1) 2007-10-27-16:31 perl(1)

Назва

perl - мова практичного здобуття (даних) і звітування (Practical Extraction and Report Language)

Використання


perl [ -sTuU ] [ -hv ] [ -V[: змінна_конфігурації ] ]
[ -cw ] [ -d[: відладчик ] ] [ -D[ ''число/список " ] ]"
[ -pna ] [ -F шаблон ] [ -l[ вісімкове ] ] [ -0[ вісімкове ] ]
[ -I каталог ] [ -m[-] модуль ] [ -M[-]' модуль...' ]
[ -P ] [ -S ] [ -x[ каталог ] ]
[ -i[ розширення ] ] [ -e ' команда <nowiki' ] [ -- ] [ файл_програми ]
[ аргумент ]...

Опис

Якщо ви новачок у Perl, вам слід розпочати зі сторінки perlintro(1), яка являється загальним введенням для початківців і надає певну допомогу щодо навігації решти чисельної документації мови Perl.

Для полегшення пошуку, посібник Perl розділено на декілька розділів.

===Загальний огляд===

perl(1): Загальний огляд Perl (цей розділ)

perlintro(1): Ознайомлення з Perl для початківців

perltoc(1): Зміст документації Perl

===Посібники===

perlreftut(1): Коротке ознайомлення з посиланнями

perldsc(1): Ознайомлення зі структурами даних мови Perl

perllol(1): Структури даних Perl: масиви масивів

perlrequick(1): Швидке ознайомлення з регулярними виразами мови Perl

perlretut(1): Посібник по регулярних виразах мови Perl

perlboot(1): Посібник об'єктнозорієнтованого програмування для початківців

perltoot(1): Посібник об'єктнозорієнтованого програмування, частина 1

perltooc(1): Посібник об'єктнозорієнтованого програмування, частина 2

perlbot(1): Об'єктнозорієнтовні хитрощі та приклади

perlstyle(1): Керування по стилю мови Perl

perlcheat(1): Perl-шпаргалка

perltrap(1): Пастки мови Perl

perldebtut(1): Посібник по зневадженню Perl

perlfaq(1): ЧАПи по Perl

perlfaq1(1): Загальні питання про Perl

perlfaq2(1): Встановлення та вивчення Perl

perlfaq3(1): Засоби програмування

perlfaq4(1): Оперування даними

perlfaq5(1): Файли та формати

perlfaq6(1): Регулярні вирази

perlfaq7(1): Спірні питання мови Perl

perlfaq8(1): Взаємодія з системою

perlfaq9(1): Взаємодія з мережою

===Довідкові посібники===

perlsyn(1): Синстаксис мови Perl

perldata(1): Структури даних Perl

perlop(1): Оператори та їхній пріоритет

perlsub(1): Функції

perlfunc(1): Вбудовані функції

perlopentut(1): Посібник функції open()

perlpacktut(1): Посібник функції pack() і unpack()

perlpod(1): Власна система документації Perl

perlpodspec(1): Опис формату pod-документації

perlrun(1): Виконання Perl та опції

perldiag(1): Діагностичні повідомлення Perl

perllexwarn(1): Лексичні попередження та керування ними

perldebug(1): Зневадження Perl-програм

perlvar(1): Попередньо-визначені змінні Perl

perlre(1): Регулярні вирази Perl, повне визначення

perlreref(1): Регулярні вирази Perl, швидкий довідник

perlref(1): Посилання, повне визначення

perlform(1): Формат виводу Perl

perlobj(1): Об'єкти в Perl

perltie(1): Об'єкти, приховані за звичайними змінними

perldbmfilter(1): Фільтри DBM мови Perl

perlipc(1): Міжпроцесна взаємодія

perlfork(1): Інформація щодо fork()

perlnumber(1): Семантика чисел мови Perl

perlthrtut(1): Посібник по програмних каналах

perlothrtut(1)

Старий посібник по програмних каналах

perlport(1): Керівний посібник по портабельності

perllocale(1): Підтримка локалізації

perluniintro(1): Ознайомлення з Юнікодом

perlunicode(1): Підтримка Юнікоду мовою Perl

perlebcdic(1): Використання Perl на EBCDIC-платформах

perlsec(1): Посібник по безпеці мови Perl

perlmod(1): Модулі Perl: як вони працюють

perlmodlib(1): Модулі Perl: як їх писати та використовувати

perlmodstyle(1): Модулі Perl: стиль написання модулів

perlmodinstall(1): Модулі Perl: як встановлювати модулі зі CPAN

perlnewmod(1): Модулі Perl: приготування нового модуля до розповсюдження

perlutil(1): Знаряддя, що входять у комплект дистрибутиву Perl

perlcompile(1): Ознайомлення з набором програм компіляції Perl

perlfilter(1): Фільтр вихідного коду Perl

Внутрішня побудова та інтерфейс для мови C

perlembed(1): Спосіб інтегрувати Perl у ваші додатки на C або C++

perldebguts(1): Внутрішня побудова та підказки по зневадженню Perl-програм

perlxstut(1): Посібник XS Perl

perlxs(1): Інтерфейс програмування XS Perl

perlclib(1): Внутрішні заміни стандартних функцій бібліотеки C

perlguts(1): Внутрішні функції Perl для тих хто пише розширення

perlcall(1): Умовності щодо виклику Perl із C

perlapi(1): Перелік API (інтерфейсу програмування додатків) Perl (автоматично генерований)

perlintern(1): Внутрішні функції Perl (автоматично генерована сторінка)

perliol(1): API (інтерфейс програмування додатків) C для Perl-втілення багаторівневого вводу/виводу

perlapio(1): Внутрішній абстрактний інтерфейс вводу/виводу Perl

perlhack(1): Інструкція для гекерів Perl

===Різне===

perlbook(1): Інформація про книжки про Perl

perltodo(1): Що необхідно доробити

perldoc(1): Перегляд Perl-документації у форматі Pod

perlhist(1): Історія розвитку мови Perl

perldelta(1)

Зміни щодо попередніх версій Perl

perl586delta(1)

Зміни Perl, введені версією 5.8.6

perl585delta(1)

Зміни Perl, введені версією 5.8.5

perl584delta(1)

Зміни Perl, введені версією 5.8.4

perl583delta(1)

Зміни Perl, введені версією 5.8.3

perl582delta(1)

Зміни Perl, введені версією 5.8.2

perl581delta(1)

Зміни Perl, введені версією 5.8.1

perl58delta(1)

Зміни Perl, введені версією 5.8.0

perl573delta(1)

Зміни Perl, введені версією 5.7.3

perl572delta(1)

Зміни Perl, введені версією 5.7.2

perl571delta(1)

Зміни Perl, введені версією 5.7.1

perl570delta(1)

Зміни Perl, введені версією 5.7.0

perl561delta(1)

Зміни Perl, введені версією 5.6.1

perl56delta(1)

Зміни Perl, введені версією 5.6

perl5005delta(1)

Зміни Perl, введені версією 5.005

perl5004delta(1)

Зміни Perl, введені версією 5.004

perlartistic(1): Артистична ліцензія Perl

perlgpl(1): Ліцензія GPL

Особливості певних мов

perlcn(1): Perl для спрощеної китайської (EUC-CN)

perljp(1): Perl для японської мови (EUC-JP)

perlko(1): Perl для корейської мови (EUC-KR)

perltw(1): Perl для традиційної китайської мови (Big5)

Особливості певних платформ

perlaix(1): Замітки щодо AIX

perlamiga(1): Замітки щодо AmigaOS

perlapollo(1): Замітки щодо Apollo DomainOS

perlbeos(1): Замітки щодо BeOS

perlbs2000(1): Замітки щодо POSIX-BC BS2000

perlce(1): Замітки щодо WinCE

perlcygwin(1): Замітки щодо Cygwin

perldgux(1): Замітки щодо DG/UX

perldos(1): Замітки щодо DOS

perlepoc(1): Замітки щодо EPOC

perlfreebsd(1): Замітки щодо FreeBSD

perlhpux(1): Замітки щодо HP-UX

perlhurd(1): Замітки щодо Hurd

perlirix(1): Замітки щодо Irix

perlmachten(1): Замітки щодо Power MachTen

perlmacos(1): Замітки щодо Mac OS (Classic)

perlmacosx(1): Замітки щодо Mac OS X

perlmint(1): Замітки щодо MiNT

perlmpeix(1): Замітки щодо MPE/iX

perlnetware(1): Замітки щодо NetWare

perlopenbsd(1): Замітки щодо OpenBSD

perlos2(1): Замітки щодо OS/2

perlos390(1): Замітки щодо OS/390

perlos400(1): Замітки щодо OS/400

perlplan9(1): Замітки щодо Plan 9

perlqnx(1): Замітки щодо QNX

perlsolaris(1): Замітки щодо Solaris

perltru64(1): Замітки щодо Tru64

perluts(1): Замітки щодо UTS

perlvmesa(1): Замітки щодо VM/ESA

perlvms(1): Замітки щодо VMS

perlvos(1): Замітки щодо Stratus VOS

perlwin32(1): Замітки щодо Windows

Типово, вищевказані сторінки посібника інстальовано в каталозі /usr/local/man/.

Існує також обширна документація модулів Perl. Стандартна конфігурація perl інсталює додакову документацію до каталогу /usr/local/lib/perl5/man (або деінде в підтеці man бібліотечного каталогу Perl). Певна частина цієї документації розповсюджується стандартно разом із Perl, але ви тако знайдете там документацію сторонніх постачальників модулів.

Ви повинні мати змогу переглядати вашу Perl-документацію за допомогою програми man(1), шляхом включення назв відповідних каталогів до конфігураційних файлів, або змінної середовища MANPATH. Щоб дізнатися, де встановлено сторінки посібника Perl, введіть команду


perl -V:man.dir

Якщо каталоги мають спільний стовбур, як от /usr/local/man/man1 і /usr/local/man/man3, вам потрібно тільки додати назву стовбура (/usr/local/man) до файлів конфігурації man(1) або змінної MANPATH. Якщо ж стовбур відрізняється, вам доведеться додати обидва стовбури.

У випадку, якщо це з якоїсь причини не працює, ви можете скористатися з наданого скрипту perldoc(1) для перегляду інформації про модулі. В такому разі, вам напевне слід оновити програму man.

Коли щось незрозуміле діється з вашою програмою, і ви не впевнені де шукати допомоги, спробуйте прапорець -w спочатку. Як правило, він вкаже, де саме джерело проблеми.

Опис

Perl оптимізовано для сканування довільних текстових файлів, здобуття звідти інформації, та виводу звітів, згідно з цією інформацією. Це також хороша мова для різноманітних задач керування системою. Ціллю було зробити мову практичною (легкою у використанні, ефекстивною, повною), а не гарною (маленькою, елегантною, мінімалістичною).

Perl поєднує (принаймні, так гадає автор) деякі з найкращих рис C, sed, awk і sh, тож ті хто знайомий з цими мовами не повинен зазнати труднощів із Perl. (Історики мов також можуть віднайти певні ознаки csh, Pascal, або навіть BASIC-PLUS.) Синтаксис виразів близько відповідає сиснтаксису виразів C. На відміну від більшості знаряддь Юнікса, Perl не обмежує розмір ваших даних - якщо достатньо пам'яті, Perl завантажить цілий файл як один ланцюжок. Глибина рекурсії також не має обмежень. Таблиці, використовувані гешами, (іноді їх називають "асоціативними масивами") зростають по мірі необхідності, щоб запобігти погіршенню ефективності. Perl в змозі використовувати витончену техніку порівнювання зі зразками регулярних виразів для швидкого сканування великої кількості даних. Хоч і оптимізований для тексту, Perl може так само обробляти бінарні дані, та надавати dbm-файлам вигляд гешів. Perl-скрипти зі встановленим бітом setuid безпечніші за аналогічні C-програми, завдяки механізму слідкування за потоком даних, що запобігає безглуздим діркам у захисті.

Якщо ви маєте задачу, яка за звичайних обставин використала би sed, awk або sh, але перевищує можливості даних програм або оболонок, і повинна працювати трохи швидше, але у вас немає бажання переписати цю дурненьку річ у C, тоді Perl може виявитися саме для вас. Існують також транслятори, що перетворять скрипти sed або awk у Perl.

Але зачекайте, більше того...

Розпочатий у 1993-у році (дивіться perlhist(1)), Perl 5-ї версії, це фактично повний перепис наново, що передбачає наступні корисні риси: .IP o Модулярність і можливість багаторазового використання завдяки багаточисельним модулям. (Опис можна знайти в perlmod(1), perlmodlib(1) і perlmodinstall(1).) .IP o Інтеграційність та можливість розширень. (Опис можна знайти в perlembed(1), perlxstut(1), perlxs(1), perlcall(1), perlguts(1) і xsubpp(1).) .IP o Можливість стоврення власних "магічних" змінних (включаючи багатократні одночасні втілення DBM). (Описано в perltie(1) та AnyDBM_File(1).) .IP o Функції тепер можна переважити іншими, автоматично завантажити та забезпечити прототипом. (Описано в perlsub(1).) .IP o Довільно-гніздован іструктури даних і анонімні функції. (Опис можна знайти в perlreftut(1), perlref(1), perldsc(1) і perllol(1).) .IP o Об'єкто-зорієнтоване програмування. (Описано в perlobj(1), perlboot(1), perltoot(1), perltooc(1) і perlbot(1).) .IP o Підтримка поверхових (легких) процесів (програмних каналів). (Описано в perlthrtut(1) і threads(1).) .IP o Підтримка Юнікоду, інтернаціоналізації та локалізації. (Описано в perluniintro(1), perllocale(1) і Locale::Maketext(1).) .IP o Лексична зона дії. (Описано в perlsub(1).) .IP o Вдосконалення регулярних виразів. (Описано в perlre(1), з додатковими прикладами в perlop(1).) .IP o Вдосконалений зневаджувач й інтерактивне середовище Perl, із підтримкою вбудованого редактору. (Описано в perldebtut(1), perldebug(1) і perldebguts(1).) .IP o Бібліотека сумісності з POSIX 1003.1. (Описано в POSIX(3).)

Гаразд, досить вихвалятися.

Наявність

Perl доступний для більшості операційних систем, включаючи практично всі Юнікс-подібні платформи. Дивіться "Підтримувані платформи".

Середовище

Дивіться perlrun(1).

Автор

Larry Wall <larry@wall.org> із допомогою когорти іншого люду.

Якщо ви хочете поділитися розповідями про ваші успіхи завдяки Perl, що може допомогти іншим, які обстоюють використання Perl в їйніх додатках, або якщо ви просто хочете виразити свою вдячність Larry й іншим розробникам Perl, пишіть будь ласка за адресою perl-thanks@perl.org.

Файли

@INC

місцезнаходження бібліотек Perl

Дивіться також

a2p(1): - перекладач із awk до perl

s2p(1): - перекладач із sed до perl

//www.perl.org/: майданчик Perl

//www.perl.com/: статті по Perl (Мережа O'Reilly)

//www.cpan.org/: архів Perl (the Comprehensive Perl Archive)

//www.pm.org/: майданчик користувачів Perl (the Perl Mongers)

Діагностика

Вказівка "use warnings" (або прапорець -w) спричинять до докладних попереджень у випадку якихось помилок.

Дивіться perldiag(1) для роз'яснення всіх діагностичних повідомлень Perl. Вказівка "use diagnostics" автоматично увімкне довшу форму, звичайно стилих повідомлень.

Помилки компіляції вкажуть вам номер рядка, що спричинив помилку, разом з вказівкою наступної лексеми або типу лексеми, яка була би розглянута. (В скрипті, переданому Perl через опцію -e, ланцюжок, що слідує за -e вважатиметься одним рядком.)

На скрипти зі встановленим бітом setuid накладаються додаткові обмеження, які можуть спричинити до повідомлень на зразок "Insecure dependency" (небезпечна залежність). Дивіться perlsec(1) у такому випадку.

Чи згадували ми, що вам конче слід розглянути використання прапорця -w?

Вади

Прапорець -w необов'язковий.

Perl цілком підвладний визначенню вашою машиною таких операцій як зведення типів, atof(), і виводу чисел з плаваючою точкою за допомогою sprintf().

Якщо стандартні операції вводу/виводу вимагають виклику seek або eof між читанням та записом певного потоку, те саме вимагатиме Perl. (Це не стосується sysread() та syswrite().)

Не зважаючи на те, що вбудовані типи даних не мають певних обмежень розміру (за винятком обсягу самої пам'яті машини), існує все ж таки певні обмеження: назва змінної не може перевищувати 251 знак. Порядкові номети рядків внутрішньо зберігаються як короткі цілі, тож вони не можуть перевищувати 65535 (більші значення, як правило, завертаються на початок відліку).

Ви можете відіслати повідомлення про вади (впевніться тільки, що включили повну конфігураційну інформацію, у тому вигляді, в якому її буде виведено програмою myconfig у вихідному коді perl, або командою "perl -V") на perlbug@perl.org. Якщо вам вдалося компілювати perl, тоді можете скористатися зі скрипту perlbug з каталогу utils/, який допоможе у відсиланні повідомлення.

Perl, насправді означає Pathologically Eclectic Rubbish Lister, але не кажіть нікому, що я це сказав.

Примітки

Девізом Perl є "There's more than one way to do it" (Існує більш ніж один спосіб щось зробити). Поділ на скільки ще способів існує, ми залишимо як впаву читачеві.

Три основних чесноти програміста, це Лінь, Нетерплячість і Пиха. Дивіться \&"Верблюжу книжку" ("Programming Perl", третє видання, автор Larry Wall), щоб дізнатися, чому саме.

Переклав українською Віталій Цибуляк.

2007-10-27-16:31 © 2005-2007 DLOU, GNU FDL